
package com.ruoyi.merchant.config;

import com.ruoyi.merchant.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


/**
 * AliOssUtil属性的配置类
 */

@Configuration
@Slf4j
public class AliOSSConfiguration {

    @Value("${aliyun.oss.endpoint}")
    private String endpoint;

    @Value("${aliyun.oss.access-key-id}")
    private String accessKeyId;

    @Value("${aliyun.oss.access-key-secret}")
    private String accessKeySecret;

    @Value("${aliyun.oss.bucket-name}")
    private String bucketName;

    @Bean
//    当你的bean被注册之后，如果注册相同类型的bean，就不会成功，它会保证你的bean只有一个，即你的实例只有一个。
//    如果不加@ConditionalOnMissingBean，当你注册多个相同的bean时，会出现异常，以此来告诉开发人员。
    @ConditionalOnMissingBean
    public AliOssUtil aliOssUtil() {
        log.info("阿里云OSS实例化");
        return new AliOssUtil(endpoint, accessKeyId, accessKeySecret, bucketName);
    }
}
